/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import entidade.Contato;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

/**
 *
 * @author Aluno
 */
public class ContatoDAO {
    private final EntityManagerFactory factory = 
            Persistence.createEntityManagerFactory("AppPU");
    private final EntityManager em = factory.createEntityManager();
    
    public boolean criar(Contato contato) {
        try {
            em.getTransaction().begin();
            em.persist(contato);
            em.getTransaction().commit();
            return true;
        } catch (Exception e) {
            if (em.isOpen()) {
                em.getTransaction().rollback();
            }
            return false;
        }
    }
    
    public boolean editar(Contato contato) {
        try {
            em.getTransaction().begin();
            em.merge(contato);
            em.getTransaction().commit();
            return true;
        } catch (Exception e) {
            if (em.isOpen()) {
                em.getTransaction().rollback();
            }
            return false;
        }
    }
    
    public boolean deletar(Contato contato) {
        try {
            em.getTransaction().begin();
            em.remove(contato);
            em.getTransaction().commit();
            return true;
        } catch (Exception e) {
            if (em.isOpen()) {
                em.getTransaction().rollback();
            }
            return false;
        }
    }
    
    public List<Contato> obterTodos() {
        Query query = em.createNamedQuery("Contato.findAll");
        return query.getResultList();
    }
}
